package java_reflect;

/**
 * @author 美女
 * @date 2022/03/26 16:12
 **/

/**
 * 不同情况的Lambda表达式使用
 */
public class LambdaUsage {
    public static void main(String[] args) {
//        //1.
//        NonReturnNonParameter i1=()->{
//            //若有多行代码，{}不能省略
//            System.out.println("第一行代码");
//            System.out.println("第二行代码");
//        };
//        i1.test1();
        //2.
//        NonReturnHasParameter i2=(t1,t2)->{
//            t1=t1+1;
//            t2="哈哈";
//            System.out.println(t1+" "+t2);
//        };
//        i2.test2(18,"");
//        HasReturnNonParameter i3=()->{
//            int num=0;
//            //num要经过一大堆运算
//            num+=10;
//            return num;
//        };
//        int ret=i3.test3();
//        System.out.println(ret);
        HasReturnHasParameter i4=(t1,t2)->{
            t1+=100;
            System.out.println(t2);
            return t1;
        };
        int ret=i4.test4(18,"铭哥");
        System.out.println(ret);
    }
}
interface NonReturnNonParameter{//1.无返回值无参
    void test1();
}
interface  NonReturnHasParameter{//2.无返回值有参数
    void test2(int age,String name);
}
interface HasReturnNonParameter{//3.有返回值无参数
    int test3();
}
interface HasReturnHasParameter{//4.有返回值有参数
    int test4(int age,String name);
}
